#include <bignumbers_mt.h>
#include <bindingalgorithmregistrator.h>
#include <bindinggenerator_mt.h>
#include <colorset_mt.h>
#include <directedgraph_mt.h>
#include <expressionengine_mt.h>
#include <expressionvalidator_mt.h>
#include <multiset_mt.h>
#include <node_mt.h>
#include <persistence_mt.h>
#include <proxyregistrator.h>
#include <time_mt.h>
#include <timedmultiset_mt.h>
#include <type_mt.h>
#include <typeregistrator.h>
#include <wfnet_mt.h>

#include <QtCore/QCoreApplication>
#include <QtTest/QTest>

using namespace core;
using namespace wfnet;
using namespace moduletest;

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv); // because of QScriptEngine

    TypeRegistrator::registrate();
    ProxyRegistrator::registrate();
    BindingAlgorithmRegistrator::registrate();

    DirectedGraph_mt coreDirectedGraph;
    QTest::qExec(&coreDirectedGraph, argc, argv);

    Node_mt coreNode;
    QTest::qExec(&coreNode, argc, argv);

    Time_mt coreTime;
    QTest::qExec(&coreTime, argc, argv);

    Type_mt coreType;
    QTest::qExec(&coreType, argc, argv);

    ColorSet_mt wfnetColor;
    QTest::qExec(&wfnetColor, argc, argv);

    Multiset_mt wfnetMultiset;
    QTest::qExec(&wfnetMultiset, argc, argv);

    TimedMultiset_mt wfnetTimedMultiset;
    QTest::qExec(&wfnetTimedMultiset, argc, argv);  

    ExpressionEngine_mt wfnetEN;
    QTest::qExec(&wfnetEN, argc, argv);

    ExpressionValidator_mt wfnetEV;
    QTest::qExec(&wfnetEV, argc, argv);

    BindingGenerator_mt wfnetBG;
    QTest::qExec(&wfnetBG, argc, argv);

    WfNet_mt wfnetNet;
    QTest::qExec(&wfnetNet, argc, argv);

    Persistence_mt corePersistence;
    QTest::qExec(&corePersistence, argc, argv);

    BigNumbers_mt bigNumbers;
    QTest::qExec(&bigNumbers, argc, argv);

    return 0;
}
